/**
 * Copyright (c) 2002-2011 旭鸣信息
 * All rights reserved. 
 * File：TreeNode.java
 * History:
 *       2011-9-15: Initially created, tangkf.
 */
package com.xteam.utils;

import java.io.Serializable;

/**
 * 用来描述一个通用的树结构，凡是存在递归表的地方，都可以用该结构来实现
 * 
 * @author tangkf
 * @param <T>
 * @param <D>
 */
public class TreeNode<T> implements LevelNode, Serializable {
	
	private static final long serialVersionUID = 1L;

	/**
	 * ID
	 */
	private java.lang.String id;

	/**
	 * 父ID
	 */
	private java.lang.String pid;

	/**
	 * 名称
	 */
	private java.lang.String tname;
	
	/**
	 * 图标
	 */
	private java.lang.String icon;
	
	/**
	 * 备注
	 */
	private java.lang.String remark;
	
	/**
	 * 可用来存储用户数据对象
	 */
	private T data;

	public java.lang.String getId() {
		return this.id;
	}

	public void setId(java.lang.String id) {
		this.id = id;
	}
	
	/**
	 * @return 
	 * @return 属性data的值.
	 */
	public T getData() {
		return this.data;
	}

	/**
	 * @param data 属性data.
	 */
	public void setData(T data) {
		this.data = data;
	}

	/**
	 * @return 属性icon的值.
	 */
	public java.lang.String getIcon() {
		return this.icon;
	}

	/**
	 * @param icon 属性icon.
	 */
	public void setIcon(java.lang.String icon) {
		this.icon = icon;
	}

	/**
	 * 获取 父ID 的属性值
	 * 
	 * @return pid : 父ID
	 * @author tangkf
	 */
	public java.lang.String getPid() {
		return this.pid;
	}

	/**
	 * 设置 父ID 的属性值
	 * 
	 * @param pid
	 *            : 父ID
	 * @author tangkf
	 */
	public void setPid(java.lang.String pid) {
		this.pid = pid;
	}

	/**
	 * 获取 名称 的属性值
	 * 
	 * @return tname : 名称
	 * @author tangkf
	 */
	public java.lang.String getTname() {
		return this.tname;
	}

	/**
	 * 设置 名称 的属性值
	 * 
	 * @param tname
	 *            : 名称
	 * @author tangkf
	 */
	public void setTname(java.lang.String tname) {
		this.tname = tname;
	}

	/**
	 * 获取 备注 的属性值
	 * 
	 * @return remark : 备注
	 * @author tangkf
	 */
	public java.lang.String getRemark() {
		return this.remark;
	}

	/**
	 * 设置 备注 的属性值
	 * 
	 * @param remark
	 *            : 备注
	 * @author tangkf
	 */
	public void setRemark(java.lang.String remark) {
		this.remark = remark;
	}

	/**
	 * 转换为字符串
	 * 
	 * @author tangkf
	 */
	public String toString() {
		return "{" + "id(分类ID)=" + id + "," + "pid(父ID)=" + pid + ","
				+ "tname(名称)=" + tname + "," + "remark(备注)=" + remark + "}";
	}
}
